package com.example.demo.service;

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 这是一个定时任务类
 */
@Service //表示这是一个服务类
public class TaskService {
    //FixedRate：不管前一个任务执行是否执行完毕，总是匀速执行新任务。
    //FixedDelay：当前一个任务执行完毕后，等待固定的时间间隔，再执行下一次任务。

//    每隔5秒钟执行一次
//    @Scheduled(fixedRate = 5000)//fixedRate = 1000*5  等价 fixedRateString = "5000"
//    public void pirnt() throws InterruptedException {
//        System.out.println("这是定时任务打印的："+System.currentTimeMillis());
//        Thread.sleep(5000);
//    }
//    //执行完当前任务后隔5秒钟执行一次
//    @Scheduled(fixedDelay = 5000)//fixedRate = 1000*5  等价 fixedRateString = "5000"
//    public void pirnt2() throws InterruptedException {
//
//        System.out.println("这是定时任务2打印的："+System.currentTimeMillis());
//        Thread.sleep(5000);
//    }


    @Resource
    JavaMailSenderImpl mailSender;//引入发送邮件的服务

    //9月到12月每周五早上9点50分发邮件
    @Scheduled(cron = "0 50 9 ? 9-12 5")
    public void pirnt3() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("584135372@qq.com");//发件人邮箱
        message.setTo("");//收件人
        message.setSubject("");
        message.setText("");
        mailSender.send(message);
    }

    //每月的第一天早上5点半发送一次邮件
    @Scheduled(cron = "0 30 5 1 * ?")
    public void pirnt4() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("584135372@qq.com");//发件人邮箱
        message.setTo("");//收件人
        message.setSubject("");
        message.setText("");
        mailSender.send(message);
    }
    //每个星期二下午2点49分准备发送签到消息
    @Scheduled(cron = "0 49 14 ? * 2")
    public void pirnt5() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("584135372@qq.com");//发件人邮箱
        message.setTo("");//收件人
        message.setSubject("");
        message.setText("");
        mailSender.send(message);
    }
}
